Tech

Diary

Lecture

About Me

개발중

운영체제 개요

JeongSeulho

2024년 12월 22일

준비중...
클립보드로 복사

운영체제의 역할

  • 프로세스 관리 : 여러 프로세스를 동시에 실행하도록 제어
  • 메모리 관리 : 메모리를 효율적으로 사용할 수 있도록
  • 하드웨어 관리 : 입출력 장치와의 인터페이스 제공
  • 파일 관리 : 하드에 효율적으로 파일을 저장

커널

  • 프로세스, 메모리, 하드디스크를 관리하는 핵심 부분
  • 커널에 접근하기 위하여 다양한 인터페이스 존재
    • CLI : 명령어를 통해 커널에 접근(Linux, Unix)
    • GUI : 그래픽을 통해 커널에 접근(윈도우, 맥OS)
    • System Call : 어플리케이션에서 커널에 접근하기 위한 인터페이스
    • 드라이버 : 하드웨어에서 커널에 접근하기 위한 인터페이스

폰 노이만 구조(프로그램 내장 방식)

  • 기존에는 하드웨어로 프로그램을 구현 => 프로그램 변경 시 하드웨어(스위치, 배선 등) 변경 필요
  • 폰 노이만 구조는 프로그램을 메모리에 올리고 버스를 통해 CPU와 연결하는 구조

CPU 구조

  • 산술논리장치(ALU) : 실제 연산을 수행
  • 제어장치 : 장치들의 동작을 제어
  • 레지스터 : CPU 내부에서 사용하는 메모리

부팅 과정

  1. ROM에 저장된 BIOS가 전원이 들어오면 실행
  2. 컴퓨터 장치들의 상태 확인(RAM, HDD, CPU 등)
  3. HDD에 있는 부트로더를 메모리로 가져와 실행
  4. OS를 메모리로 가져와 실행

프로세스와 쓰레드

프로세스의 메모리 구조

  • 코드 영역 : 실행할 프로그램의 코드가 저장
  • 데이터 영역 : 전역 변수, 정적 변수
  • 힙 영역 : 런타임에 필요시 동적으로 할당되는 부분
  • 스택 영역 : 함수 관련한 정보(지역변수, 매개변수, 리턴값, 함수 종료 후 돌아갈 주소)

멀티 프로그래밍과 멀티 프로세싱

  • 멀티 프로그래밍 : 메모리에 여러 프로세스를 동시에 올림
  • 멀티 프로세싱 : CPU가 시분할하여 여러 프로세스를 동시에 실행